package com.diepu.www.client.xhh.partner.request;

import java.io.Serializable;
import java.util.List;

import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * 稻普终审:请求
 * 类描述: 稻普终审:请求 <br/>     
 * 项目名称:diepu-parent-partner <br/> 
 * 类名称:ApplyLastInstanceRequest <br/>     
 * 创建人:xiongxiaotun <br/> 
 * 创建时间:2017年8月23日 下午5:09:02  <br/>   
 * 修改人:xiongxiaotun <br/> 
 * 修改时间: 2017年8月23日 下午5:09:02   <br/>  
 * 修改备注:   <br/> 
 * @version V1.0   <br/>
 */
public class ApplyLastInstanceRequest extends BasePartnerRequest implements Serializable{
	private static final long serialVersionUID = 1L;
	/**
	 * 验证
	 * @author xiongxiaotun <br/>
	 * @Title validate  <br/>
	 * @Description 验证  <br/>
	 * @return
	 * @version V1.0  <br/>
	 */
	@Override
	public boolean validate(){
		if(!StringUtils.isNoneBlank(xeApplyNo, carBrand)) {
			return false;
		}
		if(!ObjectUtils.allNotNull(loanAmount, lastInstanceStatus, loanTimeLimit)) {
			return false;
		}
		return true;
	}
	/**
	 * 购车人姓名 <br/>
	 * 姓名必须为汉字 <br/>
	 * （不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准）<br/>
	 */
	private String name;
	/**
	 * 购车人性别<br/>
	 * 1男 2女 
	 */
	private Integer sex;
	/**
	 * 购车人户籍
	 */
	private String register;
	/**
	 * 购车人身份证号<br/>
	 * 不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准
	 */
	@JSONField(name = "card_no")
	private String cardNo;
	/**
	 * 购车人学历
	 * 1：博士 2：研究生 3：本科 4：大专 5：高中以下
	 */
	private Integer degree;
	/**
	 * 购车人婚否<br/>
	 * 1 未婚  2 离异  3 丧偶 4 已婚 5 再婚
	 */
	@JSONField(name = "marital_status")
	private Integer maritalStatus;
	/**
	 * 购车人手机号码1<br/>
	 * 不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准
	 */
	private String mobile1;
	/**
	 * 购车人手机号码2
	 */
	private String mobile2;
	/**
	 * 购车人现住地址
	 */
	@JSONField(name = "live_addr")
	private String liveAddr;
	/**
	 * 购车人公司名称
	 */
	@JSONField(name = "company_name")
	private String companyName;
	/**
	 * 购车人公司职务<br/>
	 * 1：董事长 2：法人代表 3：总经理 4：副总 5：财务总监 6：其他
	 */
	private Integer position;
	/**
	 * 购车人月收入
	 */
	@JSONField(name = "monthly_income")
	private Double monthlyIncome;
	
	
	/**
	 * 共同购车人配偶姓名<br/>
	 * 如为已婚则必填<br/>
	 * 不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准
	 */
	@JSONField(name = "spouse_name")
	private String spouseName;
	/**
	 * 共同购车人配偶身份证<br/>
	 * 如为已婚则必填<br/>
	 * 不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准
	 */
	@JSONField(name = "spouse_card_no")
	private String spouseCardNo;
	/**
	 * 共同购车人配偶手机号
	 * 如为已婚则必填<br/>
	 * 不允许修改，可以不用传递此参数，即使传递也按借款申请接口首次推入为准
	 */
	@JSONField(name = "spouse_mobile")
	private String spouseMobile;
	/**
	 * 共同购车人公司名称
	 */
	@JSONField(name = "spouse_company_name")
	private String spouseCompanyName;
	/**
	 * 共同购车人公司职务<br/>
	 * 1：董事长 2：法人代表 3：总经理 4：副总 5：财务总监 6：其他
	 */
	@JSONField(name = "spouse_position")
	private Integer spousePosition;
	/**
	 * 共同购车人月收入
	 */
	@JSONField(name = "spouse_monthly_income")
	private Double spouseMonthlyIncome;
	
	/**
	 * 担保人信息
	 */
	@JSONField(name = "sponsor_info")
	private List<SponsorInfo> sponsorInfo;
	
	/**
	 * 车辆经销商
	 */
	@JSONField(name = "car_dealer")
	private String carDealer;
	/**
	 * 车辆品牌、车系和车型<br/>
	 * 只传车型，格式为 品牌,车系,车型
	 */
	@JSONField(name = "car_brand")
	private String carBrand;
	/**
	 * 车辆座位数
	 */
	@JSONField(name = "car_seat_number")
	private Integer carSeatNumber;
	/**
	 * 车辆性质(新车/二手车)
	 * 1、新车 2、二手车
	 */
	@JSONField(name = "car_property")
	private Integer carProperty;
	/**
	 * 车辆价格（新车购入价/二手车评估价）
	 */
	@JSONField(name = "car_value")
	private Double carValue;
	
	
	/**
	 * 垫款金额（同用款金融）<br/>
	 * 必填<br/>
	 * 单位元<br/>
	 */
	@JSONField(name = "loan_amount")
	private Double loanAmount;
	/**
	 * 用款期限<br/>
	 * 必填<br/>
	 * 12（表示12期）<br/>
	 */
	@JSONField(name = "loan_time_limit")
	private Integer loanTimeLimit;
	/**
	 * 申请编号<br/>
	 * 必填<br/>
	 * 鑫合汇申请编号<br/>
	 */
	@JSONField(name = "xe_apply_no")
	private String xeApplyNo;
	/**
	 * 终审状态<br/>
	 * 必填<br/>
	 * 2：不通过 1：通过<br/>
	 */
	@JSONField(name = "lastInstance_status")
	private Integer lastInstanceStatus;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getSex() {
		return sex;
	}
	public void setSex(Integer sex) {
		this.sex = sex;
	}
	public String getRegister() {
		return register;
	}
	public void setRegister(String register) {
		this.register = register;
	}
	public String getCardNo() {
		return cardNo;
	}
	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}
	public Integer getDegree() {
		return degree;
	}
	public void setDegree(Integer degree) {
		this.degree = degree;
	}
	public Integer getMaritalStatus() {
		return maritalStatus;
	}
	public void setMaritalStatus(Integer maritalStatus) {
		this.maritalStatus = maritalStatus;
	}
	public String getMobile1() {
		return mobile1;
	}
	public void setMobile1(String mobile1) {
		this.mobile1 = mobile1;
	}
	public String getMobile2() {
		return mobile2;
	}
	public void setMobile2(String mobile2) {
		this.mobile2 = mobile2;
	}
	public String getLiveAddr() {
		return liveAddr;
	}
	public void setLiveAddr(String liveAddr) {
		this.liveAddr = liveAddr;
	}
	public String getCompanyName() {
		return companyName;
	}
	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}
	public Integer getPosition() {
		return position;
	}
	public void setPosition(Integer position) {
		this.position = position;
	}
	public Double getMonthlyIncome() {
		return monthlyIncome;
	}
	public void setMonthlyIncome(Double monthlyIncome) {
		this.monthlyIncome = monthlyIncome;
	}
	public String getSpouseName() {
		return spouseName;
	}
	public void setSpouseName(String spouseName) {
		this.spouseName = spouseName;
	}
	public String getSpouseCardNo() {
		return spouseCardNo;
	}
	public void setSpouseCardNo(String spouseCardNo) {
		this.spouseCardNo = spouseCardNo;
	}
	public String getSpouseMobile() {
		return spouseMobile;
	}
	public void setSpouseMobile(String spouseMobile) {
		this.spouseMobile = spouseMobile;
	}
	public String getSpouseCompanyName() {
		return spouseCompanyName;
	}
	public void setSpouseCompanyName(String spouseCompanyName) {
		this.spouseCompanyName = spouseCompanyName;
	}
	public Integer getSpousePosition() {
		return spousePosition;
	}
	public void setSpousePosition(Integer spousePosition) {
		this.spousePosition = spousePosition;
	}
	public Double getSpouseMonthlyIncome() {
		return spouseMonthlyIncome;
	}
	public void setSpouseMonthlyIncome(Double spouseMonthlyIncome) {
		this.spouseMonthlyIncome = spouseMonthlyIncome;
	}
	public List<SponsorInfo> getSponsorInfo() {
		return sponsorInfo;
	}
	public void setSponsorInfo(List<SponsorInfo> sponsorInfo) {
		this.sponsorInfo = sponsorInfo;
	}
	public String getCarDealer() {
		return carDealer;
	}
	public void setCarDealer(String carDealer) {
		this.carDealer = carDealer;
	}
	public String getCarBrand() {
		return carBrand;
	}
	public void setCarBrand(String carBrand) {
		this.carBrand = carBrand;
	}
	public Integer getCarSeatNumber() {
		return carSeatNumber;
	}
	public void setCarSeatNumber(Integer carSeatNumber) {
		this.carSeatNumber = carSeatNumber;
	}
	public Integer getCarProperty() {
		return carProperty;
	}
	public void setCarProperty(Integer carProperty) {
		this.carProperty = carProperty;
	}
	public Double getCarValue() {
		return carValue;
	}
	public void setCarValue(Double carValue) {
		this.carValue = carValue;
	}
	public Double getLoanAmount() {
		return loanAmount;
	}
	public void setLoanAmount(Double loanAmount) {
		this.loanAmount = loanAmount;
	}
	public Integer getLoanTimeLimit() {
		return loanTimeLimit;
	}
	public void setLoanTimeLimit(Integer loanTimeLimit) {
		this.loanTimeLimit = loanTimeLimit;
	}
	public String getXeApplyNo() {
		return xeApplyNo;
	}
	public void setXeApplyNo(String xeApplyNo) {
		this.xeApplyNo = xeApplyNo;
	}
	public Integer getLastInstanceStatus() {
		return lastInstanceStatus;
	}
	public void setLastInstanceStatus(Integer lastInstanceStatus) {
		this.lastInstanceStatus = lastInstanceStatus;
	}
}
